﻿using HDS.Model;
using HDS.Model.Entity.Master;
using HDS.Model.Entity.View;
using HDS.SupplierApi.Core.Entity;
using System;
using System.Collections.Generic;
using System.Linq.Expressions;
using System.Text;
using System.Threading.Tasks;

namespace HDS.IService.Master
{
    public interface ISupplierHotelService
    {
        Task<SupplierHotel> GetHotel(string supplier, string supplierHotelId);

        Task<VSupplierHotel> GetVHotel(string supplier, string supplierHotelId);

        Task<DataPagingModel<VSupplierHotel>> GetHotelList(int pageIndex, int pageSize, string supplier = "", string supplierHotelId = "", int? hotelId = null, bool? isAvail = null, bool? isTop = null, bool? isMapping = null, decimal? hotelStar = null, string hotelNameEn = "", string hotelNameCn = "", string countryName = "", string cityName = "");

        Task UpdateHotel(SupplierHotel entity);


        Task<SupplierRoom> GetRoom(string supplier, string supplierHotelId, string supplierRoomId);

        Task<DataPagingModel<SupplierRoom>> GetRoomList(int pageIndex, int pageSize, string supplier = "", string supplierHotelId = "", int? hotelId = null);

        Task<List<SupplierRoom>> GetRoomList(string supplier, string supplierHotelId);

        Task AddRooms(string supplier, string supplierHotelId, List<SupplierRoom> supplierRoomList);

        Task AddRooms(List<SupplierRate> rateList);

        Task<bool> DeleteRoom(string supplier, string supplierHotelId, string supplierRoomId);

        Task<bool> RestoreRoom(string supplier, string supplierHotelId, string supplierRoomId);

        Task<SupplierHotelMark> GetMark(string supplier, string supplierHotelId);
    }
}
